package com.example.vue.account.mapper;

import com.example.vue.account.domain.Account;
import com.github.pagehelper.Page;

import java.util.List;
import java.util.Map;

/**
 * @author zhouxl
 * @DATE 2020/11/27
 * @descriptoin
 */
public interface AccountMapper {

    /**
     * 通过邮箱查询账户信息
     *
     * @param email
     * @return
     */
    Account queryEmail(String email);

    /**
     * 添加用户信息
     *
     * @param account
     * @return
     */
    int addAccount(Account account);

    /**
     * 查询用户列表信息
     *
     * @param params
     * @return
     */
    Page queryAccountList(Map<String, Object> params);

    /**
     * 查询当前
     *
     * @param params
     * @return
     */
    Map<String, Object> queryAccount(Map<String, Object> params);

    /**
     * 编辑用户信息
     *
     * @param params
     * @return
     */
    int updateAccount(Map<String, Object> params);

    /**
     * 删除用户信息
     *
     * @param params
     * @return
     */
    int deleteAccount(Map<String, Object> params);

    /**
     * 重置用户密码
     *
     * @param params
     * @return
     */
    int resetPassAccount(Map<String, Object> params);

    /**
     * 当前用户所有的权限信息
     *
     * @param params
     * @return
     */
    List<Map<String, Object>> queryAccountMenu(Map<String, Object> params);

    /**
     * 保存用户权限信息
     *
     * @param params
     * @return
     */
    int saveAccountMenu(Map<String, Object> params);

    /**
     * 删除用户权限信息
     *
     * @param params
     * @return
     */
    int deleteAccountMenu(Map<String, Object> params);

    /**
     * 改变用户性别信息
     *
     * @param params
     * @return
     */
    int changeAccountGender(Map<String, Object> params);

    /**
     * 用户状态信息修改
     *
     * @param params
     * @return
     */
    int changeAccountStatus(Map<String, Object> params);

    /**
     * 查询当前用户的权限信息
     *
     * @param params
     * @return
     */
    Map<String, Object> queryAuthMenu(Map<String, Object> params);
}
